home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / buglist.txt < prev    next >
Text File  |  1995-03-31  |  9KB  |  195 lines

  1. Item: 760 by billw at hpcvra.CV.HP.COM 
  2. Author: [William C Wickes] 
  3.   Subj: HP 48 revisions 
  4.   Date: Mon Sep 17 1990 16:56  
  5.  
  6. Eric Toonen recently posted a list of HP 48 bugs, and others have asked 
  7. me various questions about the list.  So here are some comments on those 
  8. bugs. 
  9.  
  10. Also, many people have questioned my use of the term "version 1E", 
  11. thinking that the "1" must mean something.  It doesn't. In R&D we have always 
  12. referred to the various HP 48 code versions as 1A, 1B, etc.  I just 
  13. forgot that the "1" hasn't been used "in public."  Generally, a letter 
  14. change represents a new version that has various defect fixes but no 
  15. design functionality changes.  A number change is associated with a 
  16. major redesign, not defect fixes.  For example, the HP 28C had 
  17. versions 1BB and 1CC--two ROM's, two letters (There were 1AA 
  18. prototypes built, but never sold.)  The HP 28S did have functionality 
  19. changes relative to the HP 28C, so its code was version 2BB.  Since 
  20. you never know when a revision will be necessary, the revision codes 
  21. only work backwards.  That is, a version 1E implies that there was a 
  22. version 1D, but not that there will be a 1F--or a 2A. 
  23.  
  24. * Regarding the bugs in Version D: 
  25.  
  26. >   [1]  (This one was documented by HP) (X,\<)Y) in the equationwriter 
  27. >   has X and Y interchanged.    
  28. Fixed in E. 
  29.  
  30. >   [2]  (This one was documented on the net) ARCHIVE crashes when done if the 
  31. >   clock is in the display.   
  32. Fixed in E.  Note that it doesn't always crash, and when it does it waits 
  33. until the archive is finished. 
  34.  
  35. >   [3]  SST\|v recalls a directory rather than entering it. Side note: 
  36. >   it is made into a new object.  (Solution: Use NEXT to check whether or 
  37. >   not the next is an unquoted directory name, and use SST if it is) 
  38.  
  39. Not changed in E.  What SSTv is doing is recalling a stored object, 
  40. then if it is a program it gets single-stepped, otherwise it gets 
  41. executed.  The 48 manual does not mention that this behavior is 
  42. different from SST for directories. 
  43.  
  44. >   [4]  The evaluation of undefined local names does not function 
  45. >   properly.  For example, try the following program. The 1 and 2 can be 
  46. >   any value. 
  47. >    
  48. >                 1 2 
  49. >                 \<< \-> x 
  50. >                   \<< 
  51. >                     \<< \-> y 'x' 
  52. >                     \>> 
  53. >                   \>> 
  54. >                 \>> 
  55. >                 EVAL EVAL 
  56. >         
  57. >   This program leaves an 'External' after giving the error "Undefined 
  58. >   Local Name" (This bug is in both HP28C's, the HP28S and HP48's A 
  59. >   through D !)   
  60.  
  61. Not fixed in E.  This does not have anything to do with evaluating 
  62. local names, but is a defect in ->, which forgets to mark the stack 
  63. for error recovery.  If the first object in an algebraic following -> 
  64. is an undefined local name (an unresolved XLIB name would probably do 
  65. the same), then as many "bad" objects are returned to the stack as -> 
  66. took off.  This bug is the new champion for longest undiscovered RPL 
  67. bug.  Fortunately, it doesn't really have any bad practical 
  68. consequences, as long as you discard the system objects if you ever do 
  69. run into this error. 
  70.  
  71. >   [5]  When you enter a command line (without starting PRG entry 
  72. >   mode), and you go to the PTYPE menu, select a plot-type, the command 
  73. >   line is evaluated, but left in the display, and you can start a new 
  74. >   command line underneath.   
  75. Not fixed in E.  Only cosmetic. 
  76.  
  77. >   [6]  You cannot enter a GROB of size 0 x 0 unless it is the last 
  78. >   thing on the command line. A syntax error occurs on the thing after 
  79. >   the "GROB 0 0".  (Solution: You can type #0 #0 BLANK)  
  80. Not changed in E. 
  81.  
  82. >   [7]  The calculator can be made to recurse by defining a unit in 
  83. >   terms of itself. (Press ON and C to exit the recursion.)   
  84. Not changed in E, and not worth the performance penalty and 
  85. complications to try to change.  Solution: Don't Do That. 
  86.  
  87. >   [8]  The parser does not check enough in an edited Directory 
  88. >   object.  With some holes resulting: 
  89. >   [8a] Resulting from [8], the calculator can be made to recurse by  
  90. >   editing a Directory object, defining a variable as itself. (Press ON  
  91. >   and C to exit the recursion.)   
  92. Not a bug.  You can do the same with STO or by VISITing a variable, 
  93. and you definitely would not want the calculator to prevent it.  There 
  94. are many circumstances in which it is desirable to store a variable's 
  95. name in the variable. 
  96.  
  97. >   [8b] Resulting from [8], you can 'hide' a variable, by editing a 
  98. >   Directory object, and name a variable the same. Then you have a 
  99. >   directory containing variables with the same name, of which only the 
  100. >   first can be evaluated, recalled or stored in. There are labels for 
  101. >   every entry, but only the first one determines whether or not a 
  102. >   directory overscore is displayed for (all) the labels.   
  103. Never said you couldn't do this.  Not a bug. 
  104.  
  105. >   [8c] With [8b] in effect, if one of these (named-the-same) 
  106. >   variables is a directory, you can see the first (even if that one 
  107. >   isn't the directory!) in the plot-catalog.   
  108. Ditto. 
  109.  
  110. >   [9]  When you VISIT a directory, it recalls and edits correctly, 
  111. >   but the edited directory cannot be stored back.   
  112. Not a bug.  This is part of the general rule that you can't store into 
  113. a non-empty directory. 
  114.  
  115. >   [10] When you strike any key, and quickly thereafter hit [ON], you 
  116. >   will go to the HOME directory. All flags are left intact, you can even 
  117. >   continue with your command line (if you had one).   
  118. Fixed in E. 
  119.  
  120. >   [11] While typing an equation in the equationwriter with implicit 
  121. >   () off, and then turn the implicit () on, when typing a backspace, the 
  122. >   equation changes as if implicit () were on all the time (losing the 
  123. >   correct equation). You cannot restore your original equation, because 
  124. >   if you reverse these actions, it inserts parentheses.  (Bill Wickes 
  125. >   says this is not a bug, but STORC considers this a bug, because you 
  126. >   can not reverse this action.)   
  127. He still says it's not a bug. 
  128.  
  129. >   [12] Some kermit error messages have carriage-return and line-feed 
  130. >   characters at the end. This results in blocks on the screen. They 
  131. >   occur (at least) after the messages "Transfer failed" and 
  132. >   "Interrupted". 
  133. Not changed in E. 
  134.  
  135. >   [13] This is not really a bug, but it is weird. When you type CLUSR 
  136. >   (preferably in a list or a program :-), it is displayed as CLVAR.  The 
  137. >   history of this fact is that CLUSR was the HP28 command, and CLVAR is 
  138. >   the HP48SX command. 
  139. CLUSR is an alias for CLVAR, to help with execution of HP 28 programs. 
  140.     
  141. >   [14] The keys STO and PURGE don't have correct string descriptors 
  142. >   inside.  This is because the LASTARG work-around is in the key 
  143. >   descriptor, rather than in the command itself.  This results in the  
  144. >   following facts: 
  145. >   [14a]         When you type STO or PURGE with too few arguments, you get 
  146. >   "Error:".  When you type STO or PURGE with enough, but wrong type 
  147. >   arguments (reals, for example,) you get "STO Error:" (Yeah, or "PURGE 
  148. >   Error:") (Solution: (This disables the LASTARG work-around.) When Usr 
  149. >   mode is on, explicitly re-assign PURGE and STO to the PURGE and STO 
  150. >   keys. You can do this with the following command: { STO 32 PURGE 54.2 
  151. >   } STOKEYS) 
  152. >    
  153. >   [14b]         \GbENTER (with vectored enter in effect) gets an empty string 
  154. >   when you pressed the STO or PURGE keys.  (Solution: (This disables the 
  155. >   LASTARG work-around.) explicitly re-assign PURGE and STO to the PURGE 
  156. >   and STO keys.  You can do this with the following command: { STO 32 
  157. >   PURGE 54.2 } STOKEYS) 
  158. The LASTARG recovery associated with the STO and PURGE keys is a feature, not 
  159. a bug. 
  160.  
  161. >   [15] \|vMATCH and \|^MATCH don't check for equations or 
  162. >   expressions. This results in the fact that you can get multiple equal 
  163. >   signs in a single symbolic. (You can do this with EXSUB on the HP28S 
  164. >   and HP28C.)  Example: 
  165. >    
  166. >                 'A=A' 
  167. >                 { 'A' '7=8' } 
  168. >                 \|vMATCH 
  169. >    
  170. >   resulting in '7=8=7=8'. 
  171. >    
  172. >   (Recalling this in the equation writer correctly results in an 
  173. >   "Invalid Syntax" error.)   
  174. Not a bug.  You wouldn't want MATCH to have to reparse an expression 
  175. upon every substitution.  If you don't like it, don't do it. 
  176.  
  177. >   [16] If the custom menu is your current menu, and you enter a 
  178. >   directory of which the variable 'CST' does not contain a list (or a 
  179. >   name of a variable that does), you will cause a system halt. 
  180. >   (Solution: do not use bad values in 'CST' to disable the CST button.) 
  181. Not fixed in E.  Note that this is not a system halt--it's like the 
  182. reset done in [10] above.  The stack remains intact. 
  183.  
  184. >   [17] TRNC and RND allow for an array in level 2 and a symbolic in 
  185. >   level 1 of the stack. This allows you to put an array in a symbolic. 
  186. >   Example: 
  187. >                 [ 2 3 ] 
  188. >                 '7/8' 
  189. >                 RND 
  190. >    
  191. >   returning 'RND(UNKNOWN,7/8)'    
  192. Fixed in E. 
  193.